1. Field of the Invention
The present invention relates to computing devices and, more particularly, to computing devices supporting one or more slots for receiving peripheral devices.
2. Description of the Related Art
There are two major classes of personal computers. The first class of personal computers are known as desktop computer systems, and the second class of personal computers are known as portable computer systems. Unlike desktop computer systems, portable computer systems typically have limited sizes and their internal hardware resources are not easily modified. Hence, portable computer systems provide external slots or receptacles for receiving peripheral devices. These peripheral devices provide additional resources to the portable computer systems. The additional resources are normally additional hardware resources, such as drive storage devices, modems, network cards, memory cards, and the like.
To add additional hardware resources to a portable computing system, one often inserts a peripheral device into a suitable external slot or receptacle of the portable computing system. The suitable external slot or receptacle is one designed to receive the peripheral device. The slot or receptacle has a particular size and shape or form factor often dictated by an industry standard.
Portable computer systems typically have different types of slots or receptacles for receiving peripheral devices having a particular design or form factor. Examples of particular slots are slots for PC CARDs (formerly known as PCMCIA cards) and slots for expansion bays. Expansion bays are also known as media bays. The peripheral devices themselves add additional resources to the computer systems. These additional resources can, for example, be a floppy drive, a Compact-Disc (CD) drive, a hard drive, a Digital Video Disc (DVD) drive, a modem, a network adapter, Random Access Memory (RAM), a sound device, or a battery.
Physically connecting a peripheral device to a portable computer system requires the electrical connection of the peripheral device to the portable computer system. The electrical connection is achieved with a connector. The connector supplies various signals, including address, data, power, and various other signals, between the peripheral device and the portable computer system. A first half of the connector resides on a cable of the peripheral device or on a package housing the peripheral device, and a second half of the connector resides on the backside of the portable computer system. The insertion action involves the connection of the first half of the connector on the package for the peripheral device with the second half of the connector on the back of the portable computer system. By coupling together the two devices using the connector, the portable computer system is able to use the resources of the peripheral device.
Recently, techniques have been developed that allow the insertion and removal of peripheral devices from external slots of a portable computer system while the portable computer system is active. These techniques prevent electrical damage to the components but are often unable to configure the software structures needed by the operating system in order to utilize the peripheral device. While some approaches to configuring the software structures used by the operating system exist, they are not suitable for buses that support multiple levels of hierarchy. An example of one such bus is a PCI local bus (PCI bus). The configuration of a PCI bus requires particular probing and space allocation operations that are conventionally only available during boot-up of the computer system. See, PCI Local Bus Specification, Version 2.1, Jun. 1, 1995.
Consequently, one disadvantage of conventional techniques is their inability to configure and thus use PCI devices that are hot-plugged. Therefore, to utilize a PCI type peripheral device, a user has to power down both the portable computer system (or place in an inactive mode), insert the peripheral device into an appropriate slot of the portable computer system, and then power the portable computer system back up again (or place in an active mode) in order to use the peripheral device. Requiring powering down or an inactive state whenever connecting peripheral devices is burdensome and unsatisfactory to most users because they want the flexibility to connect and disconnect peripheral devices from the computer system at will even when the computer is in use.
Thus, there is a need for a technique whereby a peripheral device can be safely connected and thereafter used by a computer system all while the computer is in an active mode.